package com.glodon.zhuanli.common.sms;

import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import lombok.Getter;
import lombok.Setter;
import org.apache.commons.lang3.StringUtils;
import org.springframework.util.Assert;

import java.util.List;
import java.util.Map;

@Setter
@Getter
public abstract class SMSTargetAdaptor implements SMSTarget {

    @Getter
    private String name ;

    //短信手机号
    private List<String> mobiles = Lists.newArrayList() ;

    //短信模板
    private String template ;

    //短信模板参数
    private Map<String,String> templateParams = Maps.newHashMap() ;

    //是否发送成功
    private boolean success ;

    //发送完成后返回的消息
    private String message ;

    public SMSTargetAdaptor(String name , String templateCode){
        Assert.hasText( name , "name不能为空" );
        this.name = name ;

        Assert.hasText( templateCode , "模板code不能为空" );
        this.template = templateCode ;
    }

    /**
     * 添加发送短信的手机号
     * @param mobile
     * @return
     */
    public void addMobile(String mobile) {
        if(StringUtils.isNotBlank(mobile)){
            this.mobiles.add( mobile.trim() ) ;
        }
    }

    /**
     * 添加参数
     * @param key
     * @param value
     */
    public void addTemplateParam(String key , String value) {
        if(StringUtils.isNotBlank(key) && StringUtils.isNotBlank(value)){
            this.templateParams.put( key , value ) ;
        }
    }

}
